{# The worker's queues, re-sent over SSE when they change: totals, a card per queue read left to right (waiting, running, done, then how the backlog is trending) and each queue's share of the waiting and finished work. #} {% from "components/macros/layout.html" import stats_strip, card, badge, sparkline %} {% from "components/macros/feedback.html" import empty_state %} {% set w = worker %} {% macro shares(key, total, label) %}
{{ q.description }}
{% endif %}{% if q.pile.per_block > 1 %}1 block ≈ {{ "{:,}".format(q.pile.per_block) }} jobs{% else %}each block is a job{% endif %}{% if q.oldest %} · oldest {{ q.oldest }}{% endif %}
{{ p.worker }} · {{ p.busy }} of {{ p.slots }}
{{ slot_row(p.busy, p.slots) }}{{ q.busy }} of {{ q.slots }} slots taken · {{ q.busy_pct }}% of capacity
{{ "{:,}".format(q.failed) }} failed{% if q.success is not none %} · {{ q.success }}%{% endif %}{% if q.rate %} · {{ q.rate }} jobs/s{% endif %}
{{ q.consumers }} {{ "consumer" if q.consumers == 1 else "consumers" }}{% if q.timeout %} · {{ q.timeout }}s timeout{% endif %}{% if q.stream %} · {{ q.stream }}{% endif %}
{{ w.problem }}
{% else %} {{ empty_state("No queues reporting", "Queues appear here once a worker is running and has registered them.") }} {% endif %} {% endfor %}